from django.core.management.base import BaseCommand
from catalog.models import Genre, Language, Author, Book, BookInstance
from django.contrib.auth.models import User
from datetime import date, timedelta

class Command(BaseCommand):
    help = '填充测试数据到数据库'

    def handle(self, *args, **kwargs):
        # 清理现有数据
        Genre.objects.all().delete()
        Language.objects.all().delete()
        Author.objects.all().delete()
        Book.objects.all().delete()
        BookInstance.objects.all().delete()

        # 创建图书类型
        genres = [
            Genre.objects.create(name='科幻小说'),
            Genre.objects.create(name='古典小说'),
            Genre.objects.create(name='悬疑小说'),
            Genre.objects.create(name='现实主义文学'),
            Genre.objects.create(name='儿童文学'),
            Genre.objects.create(name='纪实文学'),
	        Genre.objects.create(name='传记'),
            Genre.objects.create(name='爱情小说'),
            Genre.objects.create(name='社会学'),
            Genre.objects.create(name='散文'),
            Genre.objects.create(name='诗歌'),
        ]

        # 创建语言
        languages = [
            Language.objects.create(name='中文'),
            Language.objects.create(name='英文'),
        ]

        # 创建作者
        authors = [
            Author.objects.create(
                name='余华',
                date_of_birth=date(1960, 2, 3),
                bio='当代著名作家，擅长写实与荒诞风格，代表作《许三观卖血记》、《活着》'
            ),
            Author.objects.create(
                name='曹雪芹',
                date_of_birth=date(1715, 1, 1),
                date_of_death=date(1763, 1, 1),
                bio='清代小说家，出身贵族世家，后家道中落，代表作《红楼梦》'
            ),
            Author.objects.create(
                name='老舍',
                date_of_birth=date(1899, 2, 3),
                date_of_death=date(1966, 8, 24),
                bio='原名舒庆春，人民艺术家，代表作还有《四世同堂》《茶馆》'
            ),
            Author.objects.create(
                name='沈从文',
                date_of_birth=date(1902, 12, 28),
                date_of_death=date(1988, 5, 10),
                bio='京派文学代表作家，擅长描写乡土风情，代表作还有《湘行散记》《长河》'
            ),
            Author.objects.create(
                name='张爱玲',
                date_of_birth=date(1920, 9, 30),
                date_of_death=date(1995, 9, 8),
                bio='海派文学代表，擅长描写都市男女情感，代表作《金锁记》'
            ),
            Author.objects.create(
                name='莫言',
                date_of_birth=date(1955, 2, 17),
                bio='首位中国籍诺贝尔文学奖得主，代表作还有《蛙》'
            ),
            Author.objects.create(
                name='玛丽·雪莱（Mary Shelley）',
                date_of_birth=date(1797, 8, 30),
                date_of_death=date(1851, 2, 1),
                bio='英国作家，浪漫主义文学代表，科幻小说奠基人之一'
            ),
            Author.objects.create(
                name='简·奥斯汀（Jane Austen）',
                date_of_birth=date(1775, 12, 16),
                date_of_death=date(1817, 7, 18),
                bio='英国小说家，擅长描写乡村贵族生活与女性命运'
            ),
            Author.objects.create(
                name='阿加莎·克里斯蒂',
                date_of_birth=date(1890, 9, 15),
                date_of_death=date(1976, 1, 12),
                bio='英国侦探小说女王，代表作有《东方快车谋杀案》《尼罗河上的惨案》等，塑造了大侦探波洛和马普尔小姐等经典角色。'
            ),
            Author.objects.create(
                name='J.K. 罗琳',
                date_of_birth=date(1965, 7, 31),
                date_of_death=None,  # 仍在世
                bio='英国作家，以《哈利·波特》系列闻名，该系列成为全球最畅销的儿童文学作品之一。'
            ),
            Author.objects.create(
                name='何伟（Peter Hessler）',
                date_of_birth=date(1969, 6, 14),
                bio='美国记者、作家，长期在中国生活，代表作《江城》《甲骨文》等，以细腻的纪实写作展现中国社会变迁。'
            ),
            Author.objects.create(
                name='沃尔特·艾萨克森',
                date_of_birth=date(1952, 5, 20),
                bio='美国传记作家，曾任《时代》杂志主编，代表作《史蒂夫·乔布斯传》《爱因斯坦传》等，擅长刻画科技与思想巨匠的生平。'
            ),
            Author.objects.create(
                name='玛格丽特·米切尔',
                date_of_birth=date(1900, 11, 8),
                date_of_death=date(1949, 8, 16),
                bio='美国作家，一生只出版《飘》一部作品即获普利策奖，成为文学经典。'
            ),
            Author.objects.create(
                name='马克斯·韦伯',
                date_of_birth=date(1864, 4, 21),
                date_of_death=date(1920, 6, 14),
                bio='德国社会学家、政治经济学家，现代社会学奠基人之一，代表作《新教伦理与资本主义精神》《经济与社会》。'
            ),
            Author.objects.create(
                name='鲁迅',
                date_of_birth=date(1881, 9, 25),
                date_of_death=date(1936, 10, 19),
                bio='中国现代文学奠基人，思想家、革命家，代表作《呐喊》《彷徨》《朝花夕拾》。'
            ),
            Author.objects.create(
                name='海子',
                date_of_birth=date(1964, 3, 24),
                date_of_death=date(1989, 3, 26),
                bio='中国当代诗人，代表作《面朝大海，春暖花开》《祖国（或以梦为马）》，诗歌充满理想主义与悲剧色彩。'
            )
        ]

        # 创建图书
        books = [
            Book.objects.create(
                title='活着',
                author=authors[0],
                summary='讲述农民福贵历经战争、饥荒等苦难，亲人相继离世，最终孤独活着的悲剧人生',
                isbn='9781234692001',
                language=languages[0]
            ),
            Book.objects.create(
                title='红楼梦',
                author=authors[1],
                summary='以贾、史、王、薛四大家族的兴衰为背景，描绘封建社会的爱情悲剧与人情冷暖。',
                isbn='9781234006002',
                language=languages[0]
            ),
            Book.objects.create(
                title='骆驼祥子',
                author=authors[2],
                summary='讲述北平人力车夫祥子三起三落的悲惨命运，反映旧社会底层人民的苦难',
                isbn='9781234692003',
                language=languages[0]
            ),
            Book.objects.create(
                title='边城',
                author=authors[3],
                summary='以湘西小镇为背景，讲述纯真少女翠翠的爱情悲剧，展现田园牧歌式的乡土中国',
                isbn='9781234692004',
                language=languages[0]
            ),
            Book.objects.create(
                title='倾城之恋',
                author=authors[4],
                summary='讲述离婚女子白流苏与富商范柳原在战乱香港的爱情博弈，充满苍凉与算计',
                isbn='9781234692005',
                language=languages[0]
            ),
            Book.objects.create(
                title='红高粱家族',
                author=authors[5],
                summary='以高密东北乡为背景，讲述抗战时期民间野性生命力与家族传奇，充满魔幻色彩',
                isbn='9781234692006',
                language=languages[0]
            ),
            Book.objects.create(
                title='弗兰肯斯坦（Frankenstein）',
                author=authors[6],
                summary='科学家维克多·弗兰肯斯坦创造人造生命，却因怪物的复仇陷入悲剧，探讨科学伦理与人性孤独。',
                isbn='9781234692007',
                language=languages[1]
            ),
            Book.objects.create(
                title='傲慢与偏见（Pride and Prejudice）',
                author=authors[7],
                summary='伊丽莎白·班纳特与达西先生因偏见与阶级差异相爱，最终跨越障碍结为伴侣',
                isbn='9781234692008',
                language=languages[1]
            ),
            Book.objects.create(
                title='东方快车谋杀案',
                author=authors[8],
                summary='大侦探波洛在东方快车上调查一桩离奇谋杀案，最终揭露了一个惊人的复仇计划。',
                isbn='9781234692009',
                language=languages[1]
            ),
            Book.objects.create(
                title='哈利·波特与魔法石',
                author=authors[9],
                summary='孤儿哈利·波特发现自己是一名巫师，进入霍格沃茨魔法学校，揭开自己身世之谜。',
                isbn='9781234692010',
                language=languages[1]
            ),
            Book.objects.create(
                title='江城',
                author=authors[10],
                summary='作者在重庆涪陵的生活记录，展现90年代中国小城的社会风貌与普通人的故事。',
                isbn='9781234692011',
                language=languages[0]
            ),
            Book.objects.create(
                title='史蒂夫·乔布斯传',
                author=authors[11],
                summary='基于对乔布斯及其亲友的采访，全面记录苹果公司创始人的创新历程与复杂个性。',
                isbn='9781234692012',
                language=languages[0]
            ),
            Book.objects.create(
                title='飘',
                author=authors[12],
                summary='南北战争背景下，任性倔强的斯嘉丽与白瑞德之间纠葛半生的爱情传奇。',
                isbn='9781234692013',
                language=languages[1]
            ),
            Book.objects.create(
                title='新教伦理与资本主义精神',
                author=authors[13],
                summary='探讨新教伦理如何影响资本主义的发展，分析宗教观念与经济行为的关系。',
                isbn='9781234692014',
                language=languages[0]
            ),
            Book.objects.create(
                title='朝花夕拾',
                author=authors[14],
                summary='鲁迅的回忆性散文集，记录童年与青年时代的往事，兼具温情与批判。',
                isbn='9781234692015',
                language=languages[0]
            ),
            Book.objects.create(
                title='海子的诗',
                author=authors[15],
                summary='收录海子经典诗作，展现其对生命、土地与理想的赤诚歌颂。',
                isbn='9781234692016',
                language=languages[0]
            )
        ]

        # 添加类型到图书
        books[0].genre.add(genres[3])  # 活着-现实主义小说
        books[1].genre.add(genres[1])  # 红楼梦-古典小说
        books[2].genre.add(genres[3])
        books[3].genre.add(genres[3])
        books[4].genre.add(genres[3])
        books[5].genre.add(genres[3])
        books[6].genre.add(genres[0])
        books[7].genre.add(genres[3])
        books[8].genre.add(genres[2])
        books[9].genre.add(genres[4])
        books[10].genre.add(genres[5])
        books[11].genre.add(genres[6])
        books[12].genre.add(genres[7])
        books[13].genre.add(genres[8])
        books[14].genre.add(genres[9])
        books[15].genre.add(genres[10])

        # 创建图书实例
        for book in books:
            for i in range(3):
                BookInstance.objects.create(
                    book=book,
                    imprint=f'第{i+1}版 2025年印刷',
                    status='a',
                    due_back=date.today() + timedelta(days=30)
                )

        self.stdout.write(self.style.SUCCESS('成功创建测试数据！'))